package proxy.staticproxy;

/**
 * ProxyClass.class<br>
 * 代理类
 *
 * @author 黄伟
 * @version 1.0
 */
public class ProxyClass  implements ProxyInterface{

    /**
     * 定义{@link InterfaceImpl}对象
     */
    private InterfaceImpl anInterface = null;

    /**
     * 打印输出信息,重写{@link ProxyInterface}中的方法<br>
     *     第一次调用创建代理类，打印输出"代理类正在创建InterfaceImpl对象"和调用代理对象{@link InterfaceImpl}的dispay()方法。<br>
     *     第二次调用直接调用代理对象{@link InterfaceImpl}的dispay()方法。
     */
    @Override
    public void display() {
        // 判断InterfaceImpl的对象是否为空
        if (anInterface == null) {
            // InterfaceImpl的对象为空，创建该对象
            anInterface = new InterfaceImpl();
            // 打印输出"正在创建InterfaceImpl对象"
            System.out.println("代理类正在创建InterfaceImpl对象") ; // 打印输出信息
        }
        // 调用InterfaceImpl对象的display方法
        anInterface.display();
    }
}
